import './assets/main.css'

import { createApp, type App as VueApp } from 'vue'
import { createPinia, type Pinia } from 'pinia'
import type { Router } from 'vue-router'

import App from './App.vue'
import router from './router'

// 创建Vue应用实例
const app: VueApp = createApp(App)

// 创建Pinia状态管理实例
const pinia: Pinia = createPinia()

// 安装插件
app.use(pinia)
app.use(router as Router)

// 挂载应用
const mountPoint: Element | null = document.querySelector('#app')
if (mountPoint) {
  app.mount(mountPoint)
} else {
  throw new Error('找不到挂载点 #app')
}

// 开发环境下的错误处理
if (import.meta.env.DEV) {
  app.config.errorHandler = (err, instance, info) => {
    console.error('应用错误:', err)
    console.error('错误组件实例:', instance)
    console.error('错误信息:', info)
  }
}
